// 知识点1：值捕获想修改变量的话，可以在参数列表后加mutable进行修改。引用捕获也必须是非const的变量才可以进行修改。

// 知识点2：若不明显指出返回类型，需要在参数列表之后位置返回类型：->bool。
#include <algorithm>
#include <iostream>
#include <numeric>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char **argv) {
  int i = 5;
  auto f = [&i]() -> bool {
    if (i == 0) {
      return true;
    } else {
      --i;
      return false;
    }
  }; //引用捕获、尾置返回类型
  int j = f();
  cout << j << endl;
  return 0;
}